home *** CD-ROM | disk | FTP | other *** search
/ PCMania 64 / PCMania CD64_1.iso / pcmania / render64 / foro / monterde / carlos / chaingun.inc < prev    next >
Text File  |  1997-10-20  |  10KB  |  182 lines

  1. /*    Cañon Multiple para Orcos  (CMO) o el DestrozaEjercitos, por
  2.                      Carlos Monterde Escudero (Monticom)
  3.           1997.                                                 */
  4.  
  5.  
  6.  
  7. //El número Pi, muy util en rotaciones
  8. #declare Pi = 3.141592654
  9.  
  10.  
  11. //Todas las texturas que voy a usar (no uso ninguna de las librerias)
  12.  
  13. #declare Metal1 = texture{pigment {color rgb <.1,.1,.1>}
  14.                           finish {metallic ambient 0 diffuse .5 specular .5 roughness .001 brilliance .3}
  15.                           }
  16. #declare Metal2 = texture{pigment{color rgb<.5,.3,.2>}
  17.                           finish {ambient .1 metallic specular .8 roughness .1/20
  18.                                   diffuse .3 brilliance 2 reflection .01}}
  19.  
  20. #declare Metal3= texture{pigment{color rgb<.5,.45,.55>}
  21.                          finish {ambient .2 metallic specular 1 roughness 1/80
  22.                                   diffuse .6 brilliance 5 reflection .5}}
  23.  
  24.  
  25. #declare Maderita = pigment{wood color_map{[0.0 color rgb <.3,.1,.1>]
  26.                                                  [0.2 color rgb <.4,.2,.1>]
  27.                                                  [0.5 color rgb <.5,.3,.2>]
  28.                                                  [0.8 color rgb <.4,.2,.1>]
  29.                                                  [1.0 color rgb <.3,.1,.1>]}}
  30. #declare Madera = texture{pigment{Maderita}}
  31.  
  32. #declare gamusino = texture{ pigment{
  33.                         image_map{
  34.                         gif "gamusino.gif"
  35.                         filter  1 1
  36.                         once
  37.                         }
  38.                         scale .8
  39.                         translate <-.4,-.4,0>}
  40.                         finish{diffuse .4}
  41.                         }
  42. #declare suciedad = texture{pigment{bozo color_map{
  43.                               [0.0 color rgbt<.1,.1,.1,.2>]
  44.                               [0.5 color rgbt<.1,.1,.1,.8>]
  45.                               [1.0 color rgbt<.1,.1,.1,.2>]}
  46.                               turbulence .5}scale .2}
  47. #declare ceniza = texture{pigment{color rgb<.1,.1,.1>}
  48.                            finish{diffuse .5} }
  49.  
  50.  
  51.  
  52. #declare Ceniza=texture{gradient z texture_map{
  53.                                       [0.00 Metal2]
  54.                                       [0.75 Metal2]
  55.                                       [0.95 ceniza]
  56.                                       [1.0  ceniza]}
  57.                                       turbulence .5
  58.                                       scale <1,1,3.5> }
  59.  
  60. //y desde aqui defino todos los objetos
  61.  
  62. //primer objeto, la base delantera, donde se apoya en CMO
  63. #declare base_delantera = union{difference{cylinder{<0,0,-.05><0,0,.05> .75 texture{Metal1}}
  64.                                            plane{-y,0 texture{Metal1}}
  65.                                            cylinder{<0,0,-.06><0,0,.06> .69 texture{Metal1}}
  66.                                            torus{.69, .05 texture {Metal1} rotate x*90}}
  67.                                 union{difference{cylinder{<0,0,-.15> <0,0,.05> 1.27 pigment{Maderita scale .2 turbulence .2}}
  68.                                                  cylinder{<0,0,-.16><0,0,.06> 1.1   pigment{Maderita scale .2 turbulence .2}}
  69.                                                  plane{y,0 pigment {Maderita}}}
  70.                                       difference{cylinder{<-.1,0,0><.1,0,0> 1.25 pigment{Maderita scale .23 turbulence .25}}
  71.                                                  cylinder{<-.8,0,0><.8,0,0> 1.1 pigment{Maderita scale .23 turbulence .25}}
  72.                                                  plane{y,0 pigment{Maderita}}
  73.                                                  plane{-z,0 pigment{Maderita}}}
  74.                                       translate y*-2}
  75.                                       }
  76.  
  77.  
  78. // y la base trasera, para colocar el percutor  y hacer posible el giro
  79.  
  80. #declare barra_principal_inferior = difference{cylinder{<0,0,0> <0,0,.2> .75 texture{Metal1}}
  81.                                       cylinder{<0,0,-1> <0,0,1> .65 texture{Metal1}}
  82.                                       plane{-y,0 texture{Metal1}}}
  83.  
  84. #declare barra_principal_superior =union{ difference{cylinder{<0,0,0> <0,0,.2> .75 texture{Metal1}}
  85.                                                      cylinder{<0,0,-1> <0,0,1> .65 texture{Metal1}}
  86.                                                      plane{y,0 texture{Metal1} }}
  87.                                           box{<-.2,.70,-.1> <.2 ,.80,.1> texture{Metal1} }
  88.                                           box{<-.05,.75,-.8><.05,.80,.1> texture{Metal1} }
  89.                                           box{<-.05,.70,-.8><.05,.75,-.70> texture{Metal1}}
  90.                                           }
  91.  
  92. #declare base=difference{ union{box{<-.1,-2,-.1><.1,1.4,.1> rotate z*45 pigment{Maderita scale .2 turbulence .2}}
  93.                                 box{<-.1,-2,-.1><.1,1.4,.1> rotate z*-45 pigment{Maderita scale .17 turbulence .1}}
  94.                                 union{box{<-.15,.6,-.15><.15,1.5,.15> texture{Metal1}}
  95.                                       sphere{<-.07,.9,-.15>,.05 texture{Metal3}}
  96.                                       sphere{<.07,.9,-.15>,.05 texture{Metal3}}
  97.                                       sphere{<-.07,.9,.15>,.05 texture{Metal3}}
  98.                                       sphere{<.07,.9,.15>,.05 texture{Metal3}}
  99.                                       sphere{<-.07,1.2,-.15>,.05 texture{Metal3}}
  100.                                       sphere{<.07,1.2,-.15>,.05 texture{Metal3}}
  101.                                       sphere{<-.07,1.2,.15>,.05 texture{Metal3}}
  102.                                       sphere{<.07,1.2,.15>,.05 texture{Metal3}}
  103.                                       rotate z*45}
  104.                                 union{box{<-.15,.6,-.15><.15,1.5,.15> texture{Metal1}}
  105.                                       sphere{<-.07,.9,-.15>,.05 texture{Metal3}}
  106.                                       sphere{<.07,.9,-.15>,.05 texture{Metal3}}
  107.                                       sphere{<-.07,.9,.15>,.05 texture{Metal3}}
  108.                                       sphere{<.07,.9,.15>,.05 texture{Metal3}}
  109.                                       sphere{<-.07,1.2,-.15>,.05 texture{Metal3}}
  110.                                       sphere{<.07,1.2,-.15>,.05 texture{Metal3}}
  111.                                       sphere{<-.07,1.2,.15>,.05 texture{Metal3}}
  112.                                       sphere{<.07,1.2,.15>,.05 texture{Metal3}}
  113.                                       rotate z*-45}
  114.                                 sphere{<0,0,-.1>,.08 texture{Metal3}}
  115.                                 sphere{<0,0,.1>,.08 texture{Metal3}}
  116.                                 object{barra_principal_inferior translate y*1.2}
  117.                                 object{barra_principal_superior
  118.                                 translate y*1.2}    /*Para posicion cerrada*/
  119.                                 //rotate z*90 translate <-.75,1.95,0>}   /*Para posicion abierta*/
  120.                                 }
  121.                plane {y,-.8}}
  122.  
  123. //y a partir de aquí, el CMO en sí
  124.  
  125.  
  126. #declare cinturon = torus{.69, .05 texture {Metal2} rotate x*90}
  127.  
  128. #declare manubrio = union{cylinder{<0,0,1><0,0,-.4> .07 pigment{color rgb<.4,.3,.2>}}
  129.                          cylinder{<-.1, 0, -.35><.5,0,-.35> .045 pigment{color rgb<.4,.3,.2>}}
  130.                           cylinder{<.45,0,-.35> <.45,0,-.4> .06 pigment{color rgb<.4,.3,.2>}}
  131.                           cylinder{<.45,0,-.4>  <.45,0,-.65> .07 pigment{color rgb<.6,.2,.1>}
  132.                                                                 normal{bumps 1 scale .01}}}
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. #declare tapadera = cylinder{<0,0,0> <0,0,.1> .5
  140.                         texture{Madera scale <.1,.25,.15>}
  141.                         texture{gamusino}
  142.                         }
  143.  
  144. #declare tapadera1 = cylinder{<0,0,0> <0,0,.1> .5
  145.                         texture{Madera scale <.1,.25,.15>}
  146.                         }
  147.  
  148.  
  149. #declare cannon =union{difference{cylinder{<0,0,0><0,0,3.5> 0.1 texture{Ceniza}}
  150.                                   cylinder{<0,0,1><0,0,4> 0.07 texture{Metal1}}
  151.                                   }
  152.                        sphere{<0,0,0>,0.1  texture{Metal2}}
  153.                        cylinder{<0,0,0.5><0,0,0.7> 0.15 texture{Metal2}}
  154.                        cylinder{<0,0,1><0,0,1.2> 0.15 texture {Metal2}}
  155.                        cylinder{<0,0,.01> <0,.15,.01> .01 texture{Metal3}}
  156.                        }
  157.  
  158.  
  159.  
  160. #declare cuerpo= union{object{tapadera translate<0,0,3.3>}
  161.                        object{tapadera1 translate<0,0,0.1>}
  162.                        object{cinturon translate z*3}
  163.                        #declare X=0
  164.                        #declare R=.55
  165.                        #declare Y=R
  166.                        #declare n=1
  167.                        #while (n<17)
  168.                        object{cannon rotate z*(-22.5*n +22.5) translate<X,Y,0>}
  169.                        #declare X=R*sin(n*0.392699081)
  170.                        #declare Y=R*cos(n*0.392699081)
  171.                        #declare n=n+1
  172.                        #end
  173.                        manubrio
  174.                        }
  175. #declare CMO = union{object{cuerpo}
  176.                           object{base translate <0,-1.2,.8>}
  177.                           object{base_delantera translate z*3}
  178.                           translate y*2
  179.                           scale .5}
  180. //Hasta aquí, el modelo básico
  181.  
  182.